CREATE TABLE [dbo].[tb_CapacitacionesDelAgente]
(
[idCapacitacion] [int] NOT NULL IDENTITY(1, 1),
[Agente] [int] NOT NULL,
[Capacitacion] [Capacitacion] NOT NULL,
[Fecha] [datetime] NOT NULL,
[TipoEntidad] [int] NULL,
[Aprobado] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_tb_CapacitacionesDelAgente_Aprobado] DEFAULT ('S'),
[FechaDeCarga9] [datetime] NULL CONSTRAINT [DF_tb_CapacitacionesDelAgente_FechaDeCarga9] DEFAULT (getdate()),
[FechaPresentacion] [datetime] NULL,
[Controlado] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Grupodeincumbencias] [int] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[AsignarFechaPresentaciónDefault] ON dbo.tb_CapacitacionesDelAgente 
FOR INSERT, UPDATE
AS
BEGIN

SET NOCOUNT ON

DECLARE @FechaPresentacion as datetime
DECLARE @id as int
DECLARE @idCapacitacionAudit int


SELECT @FechaPresentacion = FechaPresentacion,@id=idCapacitacion  FROM INSERTED

	IF (@@ROWCOUNT=1) 
	 BEGIN
	    IF @FechaPresentacion IS NULL SELECT @FechaPresentacion= dbo.FECHA_PRESENTACION_DEFAULT ()
	    UPDATE tb_CapacitacionesDelAgente SET FechaPresentacion = @FechaPresentacion WHERE idcapacitacion=@id
        /*borra el registro duplicado en la tabla tb_servicioshistoricosaudit*/
        select @idCapacitacionAudit=max(idCapacitacionAudit) FROM  dbo.tb_CapacitacionesDelAgenteAudit
        delete dbo.tb_CapacitacionesDelAgenteAudit where idCapacitacionAudit=@idCapacitacionAudit
	 END

END
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditDEL_tb_CapacitacionesDelAgente on dbo.tb_CapacitacionesDelAgente FOR DELETE as  DECLARE @ID AS BIGINT  DECLARE @idCapacitacion_ANT AS int  DECLARE @idCapacitacion_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,idCapacitacion FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @idCapacitacion_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @idCapacitacion_DES=(SELECT idCapacitacion from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','idCapacitacion',CAST(@idCapacitacion_ANT AS varchar(200)),CAST(@idCapacitacion_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @idCapacitacion_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Agente_ANT AS int  DECLARE @Agente_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Agente FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Agente_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Agente_DES=(SELECT Agente from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Agente',CAST(@Agente_ANT AS varchar(200)),CAST(@Agente_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Agente_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Capacitacion_ANT AS int  DECLARE @Capacitacion_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Capacitacion FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Capacitacion_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Capacitacion_DES=(SELECT Capacitacion from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Capacitacion',CAST(@Capacitacion_ANT AS varchar(200)),CAST(@Capacitacion_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Capacitacion_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Fecha_ANT AS datetime  DECLARE @Fecha_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Fecha FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Fecha_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Fecha_DES=(SELECT Fecha from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Fecha',CAST(@Fecha_ANT AS varchar(200)),CAST(@Fecha_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Fecha_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @TipoEntidad_ANT AS int  DECLARE @TipoEntidad_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,TipoEntidad FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @TipoEntidad_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @TipoEntidad_DES=(SELECT TipoEntidad from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','TipoEntidad',CAST(@TipoEntidad_ANT AS varchar(200)),CAST(@TipoEntidad_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @TipoEntidad_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Aprobado_ANT AS varchar(1)  DECLARE @Aprobado_DES AS varchar(1)  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Aprobado FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Aprobado_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Aprobado_DES=(SELECT Aprobado from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Aprobado',CAST(@Aprobado_ANT AS varchar(200)),CAST(@Aprobado_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Aprobado_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @FechaDeCarga9_ANT AS datetime  DECLARE @FechaDeCarga9_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,FechaDeCarga9 FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @FechaDeCarga9_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @FechaDeCarga9_DES=(SELECT FechaDeCarga9 from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','FechaDeCarga9',CAST(@FechaDeCarga9_ANT AS varchar(200)),CAST(@FechaDeCarga9_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @FechaDeCarga9_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @FechaPresentacion_ANT AS datetime  DECLARE @FechaPresentacion_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,FechaPresentacion FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @FechaPresentacion_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @FechaPresentacion_DES=(SELECT FechaPresentacion from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','FechaPresentacion',CAST(@FechaPresentacion_ANT AS varchar(200)),CAST(@FechaPresentacion_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @FechaPresentacion_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Controlado_ANT AS varchar(1)  DECLARE @Controlado_DES AS varchar(1)  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Controlado FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Controlado_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Controlado_DES=(SELECT Controlado from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Controlado',CAST(@Controlado_ANT AS varchar(200)),CAST(@Controlado_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Controlado_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Grupodeincumbencias_ANT AS int  DECLARE @Grupodeincumbencias_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idCapacitacion ,Grupodeincumbencias FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Grupodeincumbencias_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Grupodeincumbencias_DES=(SELECT Grupodeincumbencias from tb_CapacitacionesDelAgente WHERE idCapacitacion = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Grupodeincumbencias',CAST(@Grupodeincumbencias_ANT AS varchar(200)),CAST(@Grupodeincumbencias_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Grupodeincumbencias_ANT END  CLOSE CUR_D DEALLOCATE CUR_D
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditINS_tb_CapacitacionesDelAgente on dbo.tb_CapacitacionesDelAgente FOR INSERT as  DECLARE @ID AS BIGINT  DECLARE CUR_I CURSOR FOR SELECT idCapacitacion  FROM INSERTED OPEN CUR_I  FETCH NEXT FROM CUR_I	INTO @ID WHILE @@FETCH_STATUS=0 BEGIN  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES 
	('I','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','*****','*****','*****',GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_I INTO @ID END  CLOSE CUR_I DEALLOCATE CUR_I
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditUPD_tb_CapacitacionesDelAgente on dbo.tb_CapacitacionesDelAgente FOR UPDATE as DECLARE @A AS varchar(200) DECLARE @D AS varchar(200) DECLARE @AUX1 AS varchar(200) DECLARE @AUX2 AS varchar(200) DECLARE @ID AS BIGINT  IF UPDATE(Agente) BEGIN DECLARE @Agente int DECLARE CUR CURSOR FOR SELECT idCapacitacion,Agente FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Agente WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Agente AS varchar(200)) SET @D=CAST((SELECT Agente FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Agente',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Agente END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Capacitacion) BEGIN DECLARE @Capacitacion int DECLARE CUR CURSOR FOR SELECT idCapacitacion,Capacitacion FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Capacitacion WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Capacitacion AS varchar(200)) SET @D=CAST((SELECT Capacitacion FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Capacitacion',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Capacitacion END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Fecha) BEGIN DECLARE @Fecha datetime DECLARE CUR CURSOR FOR SELECT idCapacitacion,Fecha FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Fecha WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Fecha AS varchar(200)) SET @D=CAST((SELECT Fecha FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Fecha',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Fecha END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(TipoEntidad) BEGIN DECLARE @TipoEntidad int DECLARE CUR CURSOR FOR SELECT idCapacitacion,TipoEntidad FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@TipoEntidad WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@TipoEntidad AS varchar(200)) SET @D=CAST((SELECT TipoEntidad FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','TipoEntidad',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @TipoEntidad END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Aprobado) BEGIN DECLARE @Aprobado varchar(1)  DECLARE CUR CURSOR FOR SELECT idCapacitacion,Aprobado FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Aprobado WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Aprobado AS varchar(200)) SET @D=CAST((SELECT Aprobado FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Aprobado',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Aprobado END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(FechaDeCarga9) BEGIN DECLARE @FechaDeCarga9 datetime DECLARE CUR CURSOR FOR SELECT idCapacitacion,FechaDeCarga9 FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@FechaDeCarga9 WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@FechaDeCarga9 AS varchar(200)) SET @D=CAST((SELECT FechaDeCarga9 FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','FechaDeCarga9',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @FechaDeCarga9 END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(FechaPresentacion) BEGIN DECLARE @FechaPresentacion datetime DECLARE CUR CURSOR FOR SELECT idCapacitacion,FechaPresentacion FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@FechaPresentacion WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@FechaPresentacion AS varchar(200)) SET @D=CAST((SELECT FechaPresentacion FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','FechaPresentacion',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @FechaPresentacion END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Controlado) BEGIN DECLARE @Controlado varchar(1)  DECLARE CUR CURSOR FOR SELECT idCapacitacion,Controlado FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Controlado WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Controlado AS varchar(200)) SET @D=CAST((SELECT Controlado FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Controlado',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Controlado END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Grupodeincumbencias) BEGIN DECLARE @Grupodeincumbencias int DECLARE CUR CURSOR FOR SELECT idCapacitacion,Grupodeincumbencias FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Grupodeincumbencias WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Grupodeincumbencias AS varchar(200)) SET @D=CAST((SELECT Grupodeincumbencias FROM tb_CapacitacionesDelAgente WHERE idCapacitacion=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_CapacitacionesDelAgente',@ID,'idCapacitacion','Grupodeincumbencias',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Grupodeincumbencias END  CLOSE CUR DEALLOCATE CUR END
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[tri_CapacitacionesDelAgenteAudit] 
on dbo.tb_CapacitacionesDelAgente for insert,update,delete as
DECLARE @OPERACION varchar(50)

IF EXISTS (SELECT * FROM INSERTED)
BEGIN
    IF EXISTS (SELECT * FROM DELETED)
    BEGIN
        --UPDATE
        SET @OPERACION='UPDATE'
    END
    ELSE
    BEGIN
        --INSERT
        SET @OPERACION='INSERT'
    END
    
    --handle insert or update data
 insert into tb_capacitacionesdelagenteaudit(idcapacitacion,agente,capacitacion,fecha,tipoentidad,aprobado,
                                             fechadecarga9,fechapresentacion,controlado,grupodeincumbencias,
										     operacion,fechaoperacion)
                                   SELECT  idcapacitacion,agente,capacitacion,fecha,tipoentidad,aprobado,
                                             fechadecarga9,fechapresentacion,controlado,grupodeincumbencias,
										   @OPERACION,getdate() FROM inserted 

END
ELSE IF EXISTS(SELECT * FROM DELETED)
BEGIN
    --DELETE
    SET @OPERACION='DELETE'
    insert into tb_capacitacionesdelagenteaudit(idcapacitacion,agente,capacitacion,fecha,tipoentidad,aprobado,
                                             fechadecarga9,fechapresentacion,controlado,grupodeincumbencias,
										     operacion,fechaoperacion)
                                   SELECT  idcapacitacion,agente,capacitacion,fecha,tipoentidad,aprobado,
                                             fechadecarga9,fechapresentacion,controlado,grupodeincumbencias,
										   @OPERACION,getdate() FROM deleted  
    
    

END
GO
ALTER TABLE [dbo].[tb_CapacitacionesDelAgente] ADD CONSTRAINT [PK_tb_CapacitacionesDelAgente] PRIMARY KEY CLUSTERED  ([idCapacitacion]) WITH (FILLFACTOR=100) ON [PRIMARY]
GO
CREATE UNIQUE NONCLUSTERED INDEX [idxu_AgenteCap] ON [dbo].[tb_CapacitacionesDelAgente] ([Agente], [Capacitacion]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [idxagentecapac] ON [dbo].[tb_CapacitacionesDelAgente] ([Capacitacion]) WITH (FILLFACTOR=100) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [idxGruposDeIncumbencias] ON [dbo].[tb_CapacitacionesDelAgente] ([Grupodeincumbencias]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [idxAgenteCapAgente] ON [dbo].[tb_CapacitacionesDelAgente] ([idCapacitacion], [Agente]) WITH (FILLFACTOR=100) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_CapacitacionesDelAgente] WITH NOCHECK ADD CONSTRAINT [FK_tb_CapacitacionesDelAgente_tb_Agentes] FOREIGN KEY ([Agente]) REFERENCES [dbo].[tb_Agentes] ([idAgente])
GO
ALTER TABLE [dbo].[tb_CapacitacionesDelAgente] WITH NOCHECK ADD CONSTRAINT [FK_tb_CapacitacionesDelAgente_tb_Capacitaciones] FOREIGN KEY ([Capacitacion]) REFERENCES [dbo].[tb_Capacitaciones] ([idCapacitacion])
GO
ALTER TABLE [dbo].[tb_CapacitacionesDelAgente] WITH NOCHECK ADD CONSTRAINT [FK_tb_CapacitacionesDelAgente_tb_GruposDeIncumbencias] FOREIGN KEY ([Grupodeincumbencias]) REFERENCES [dbo].[tb_GruposDeIncumbencias] ([idGrupoIncumbencia])
GO
ALTER TABLE [dbo].[tb_CapacitacionesDelAgente] WITH NOCHECK ADD CONSTRAINT [FK_tb_CapacitacionesDelAgente_tb_TipoEntidadCapacitadora] FOREIGN KEY ([TipoEntidad]) REFERENCES [dbo].[tb_TipoEntidadCapacitadora] ([id])
GO
